import request from './request'

// ==================== 用户管理 ====================

/**
 * 获取所有用户列表
 */
export function getAllUsers() {
  return request({
    url: '/admin/users',
    method: 'get'
  })
}

/**
 * 启用用户
 */
export function enableUser(userId) {
  return request({
    url: `/admin/user/enable/${userId}`,
    method: 'post'
  })
}

/**
 * 禁用用户
 */
export function disableUser(userId) {
  return request({
    url: `/admin/user/disable/${userId}`,
    method: 'post'
  })
}

/**
 * 删除用户
 */
export function deleteUser(userId) {
  return request({
    url: `/admin/user/${userId}`,
    method: 'delete'
  })
}

/**
 * 为用户分配角色
 */
export function assignRoleToUser(data) {
  return request({
    url: '/admin/user/assign-role',
    method: 'post',
    data
  })
}

/**
 * 移除用户角色
 */
export function removeUserRole(data) {
  return request({
    url: '/admin/user/remove-role',
    method: 'post',
    data
  })
}

/**
 * 获取用户的角色列表
 */
export function getUserRoles(userId) {
  return request({
    url: `/admin/user/${userId}/roles`,
    method: 'get'
  })
}

/**
 * 获取用户的权限列表
 */
export function getUserPermissions(userId) {
  return request({
    url: `/admin/user/${userId}/permissions`,
    method: 'get'
  })
}

// ==================== 角色管理 ====================

/**
 * 获取所有角色列表
 */
export function getAllRoles() {
  return request({
    url: '/admin/roles',
    method: 'get'
  })
}

/**
 * 添加角色
 */
export function addRole(data) {
  return request({
    url: '/admin/role',
    method: 'post',
    data
  })
}

/**
 * 删除角色
 */
export function deleteRole(roleId) {
  return request({
    url: `/admin/role/${roleId}`,
    method: 'delete'
  })
}

/**
 * 更新角色
 */
export function updateRole(data) {
  return request({
    url: '/admin/role',
    method: 'put',
    data
  })
}

/**
 * 为角色分配权限
 */
export function assignPermissionToRole(data) {
  return request({
    url: '/admin/role/assign-permission',
    method: 'post',
    data
  })
}

/**
 * 移除角色权限
 */
export function removeRolePermission(data) {
  return request({
    url: '/admin/role/remove-permission',
    method: 'post',
    data
  })
}

/**
 * 获取角色的权限列表
 */
export function getRolePermissions(roleId) {
  return request({
    url: `/admin/role/${roleId}/permissions`,
    method: 'get'
  })
}

// ==================== 权限管理 ====================

/**
 * 获取所有权限列表
 */
export function getAllPermissions() {
  return request({
    url: '/admin/permissions',
    method: 'get'
  })
}

/**
 * 添加权限
 */
export function addPermission(data) {
  return request({
    url: '/admin/permission',
    method: 'post',
    data
  })
}

/**
 * 删除权限
 */
export function deletePermission(permissionId) {
  return request({
    url: `/admin/permission/${permissionId}`,
    method: 'delete'
  })
}

/**
 * 更新权限
 */
export function updatePermission(data) {
  return request({
    url: '/admin/permission',
    method: 'put',
    data
  })
}

